<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://webservices.groove.net/Groove/2.0/Forms2/" xmlns:c="http://webservices.groove.net/Groove/2.0/Core/" xmlns:e="http://webservices.groove.net/Groove/2.0/Events/" elementFormDefault="qualified" targetNamespace="http://webservices.groove.net/Groove/2.0/Forms2/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="./Core.xsd" namespace="http://webservices.groove.net/Groove/2.0/Core/" />
  <xs:import schemaLocation="./Events.xsd" namespace="http://webservices.groove.net/Groove/2.0/Events/" />
  <xs:complexType name="FileAttachments">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FileAttachment" type="tns:FileAttachment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FileAttachment">
    <xs:sequence>
      <xs:element minOccurs="0" name="ID" type="xs:string" />
      <xs:element minOccurs="0" name="CreatedBy" type="xs:string" />
      <xs:element minOccurs="0" name="ModifiedBy" type="xs:string" />
      <xs:element minOccurs="0" name="Created" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Modified" type="xs:dateTime" />
      <xs:element name="FullName" type="xs:string" />
      <xs:element minOccurs="0" name="Type" type="xs:string" />
      <xs:element minOccurs="0" name="Size" type="xs:int" />
      <xs:element minOccurs="0" name="Contents" type="tns:FileContents" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FileContents">
    <xs:choice>
      <xs:element name="Base64" type="xs:base64Binary" />
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="FileRef">
    <xs:complexContent mixed="false">
      <xs:extension base="xs:anyType">
        <xs:attribute name="href" type="xs:anyURI" use="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RecordQuery">
    <xs:sequence>
      <xs:element name="ViewURI" type="xs:anyURI" />
      <xs:element name="FormURI" type="xs:anyURI" />
      <xs:element name="UnreadRecordsOnly" type="xs:boolean" />
      <xs:element name="WhereClause" type="xs:string" />
      <xs:element name="QueryMetadataOnly" type="xs:boolean" />
      <xs:element name="IncludeFileAttachmentContent" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Forms2RecordDataSet">
    <xs:sequence>
      <xs:element name="Schema" type="xs:anyType" />
      <xs:element minOccurs="0" name="Data" type="xs:anyType" />
      <xs:element minOccurs="0" name="SchemaVersionID" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormsField">
    <xs:sequence>
      <xs:element name="ID" type="xs:string" />
      <xs:element name="Name" type="xs:string" />
      <xs:element name="DataType" type="xs:string" />
      <xs:element name="Label" type="xs:string" />
      <xs:element name="IsRTFLabel" type="xs:boolean" />
      <xs:element minOccurs="0" name="ValidationType" type="xs:string" />
      <xs:element minOccurs="0" name="ValidationParameter" type="xs:string" />
      <xs:element name="URI" type="xs:anyURI" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormsFieldList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FormsField" type="tns:FormsField" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ViewColumn">
    <xs:sequence>
      <xs:element name="Name" type="xs:string" />
      <xs:element name="HeaderText" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ViewColumnList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ViewColumn" type="tns:ViewColumn" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Form">
    <xs:sequence>
      <xs:element name="ID" type="xs:string" />
      <xs:element name="FormsRecordDataSet_ID" type="xs:string" />
      <xs:element name="Name" type="xs:string" />
      <xs:element name="URI" type="xs:anyURI" />
      <xs:element name="Type" type="xs:string" />
      <xs:element name="MaintainRecordVersionHistory" type="xs:boolean" />
      <xs:element name="IsResponse" type="xs:boolean" />
      <xs:element name="IsDeleted" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Form" type="tns:Form" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormsView">
    <xs:sequence>
      <xs:element name="ID" type="xs:string" />
      <xs:element name="Name" type="xs:string" />
      <xs:element minOccurs="0" name="RecordsLastModifiedTimeDate" type="xs:dateTime" />
      <xs:element name="DefaultSortPrimaryKeyFieldName" type="xs:string" />
      <xs:element name="URI" type="xs:anyURI" />
      <xs:element name="ViewColumnList" type="tns:ViewColumnList" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormsViewList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FormsView" type="tns:FormsView" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ToolProperties">
    <xs:sequence>
      <xs:element name="DefaultFormID" type="xs:string" />
      <xs:element name="DefaultFormName" type="xs:string" />
      <xs:element name="DefaultViewID" type="xs:string" />
      <xs:element name="DefaultViewName" type="xs:string" />
      <xs:element name="AllowSearch" type="xs:boolean" />
      <xs:element name="AllowRecordCreation" type="xs:boolean" />
      <xs:element name="AllowMacros" type="xs:boolean" />
      <xs:element name="AllowChangeView" type="xs:boolean" />
      <xs:element name="ViewStyle" type="xs:string" />
      <xs:element name="DefaultFormURI" type="xs:anyURI" />
      <xs:element name="DefaultViewURI" type="xs:anyURI" />
      <xs:element name="DesignTemplateName" type="xs:string" />
      <xs:element name="DesignTemplateVersion" type="xs:string" />
      <xs:element name="AboutToolContents" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="InfoPathTemplate">
    <xs:sequence>
      <xs:element name="Contents" type="tns:FileContents" />
      <xs:element name="URN" type="xs:string" />
      <xs:element name="PublishURL" type="xs:string" />
      <xs:element name="Version" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfURI">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="string" type="xs:anyURI" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="IsFormsToolDesignInitialized">
    <xs:complexType />
  </xs:element>
  <xs:element name="IsFormsToolDesignInitializedResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="IsFormsToolDesignInitializedResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReplaceDesign">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TargetFormsToolURI" type="xs:anyURI" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReplaceDesignResponse">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadFormFields">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadFormFieldsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadFormFieldsResult" type="tns:FormsFieldList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadForms">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadFormsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadFormsResult" type="tns:FormList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadViews">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadViewsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadViewsResult" type="tns:FormsViewList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadToolProperties">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadToolPropertiesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadToolPropertiesResult" type="tns:ToolProperties" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadInfoPathTemplate">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="FormURI" type="xs:anyURI" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadInfoPathTemplateResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadInfoPathTemplateResult" type="tns:InfoPathTemplate" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteRecords">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RecordURIList" type="c:URIList" />
        <xs:element name="ExceptionIfDeleted" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteRecordsResponse">
    <xs:complexType />
  </xs:element>
  <xs:element name="UpdateUnreadMark">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="UnreadState" type="xs:boolean" />
        <xs:element name="RecordURIList" type="c:URIList" />
        <xs:element name="ExceptionIfDeleted" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateUnreadMarkResponse">
    <xs:complexType />
  </xs:element>
  <xs:element name="CreateRecords">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RecordDataSet" type="tns:Forms2RecordDataSet" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateRecordsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="CreateRecordsResult" type="tns:ArrayOfURI" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateRecords">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RecordDataSet" type="tns:Forms2RecordDataSet" />
        <xs:element name="ExceptionIfDeleted" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateRecordsResponse">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadRecords">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RecordURIList" type="c:URIList" />
        <xs:element name="IncludeFileAttachmentContent" type="xs:boolean" />
        <xs:element name="ExceptionIfDeleted" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadRecordsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadRecordsResult" type="tns:Forms2RecordDataSet" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="QueryRecords">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="RecordQuery" type="tns:RecordQuery" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="QueryRecordsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="QueryRecordsResult" type="tns:Forms2RecordDataSet" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="Forms2RecordAddEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="RecordDataSet" type="tns:Forms2RecordDataSet" />
          <xs:element name="DesignName" type="xs:string" />
          <xs:element name="DesignVersion" type="xs:string" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Forms2RecordUpdateEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="RecordDataSet" type="tns:Forms2RecordDataSet" />
          <xs:element name="DesignName" type="xs:string" />
          <xs:element name="DesignVersion" type="xs:string" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Forms2RecordDeleteEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="RecordIDs" type="c:IDList" />
          <xs:element name="DesignName" type="xs:string" />
          <xs:element name="DesignVersion" type="xs:string" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>